package cn.hrms.mapper;

import cn.hrms.domain.Employee;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author: @date: 2024/12/18 - 13:22
 * @mail: luxiaoxiao@qq.com
 * @info:
 */
@Mapper
public interface EmployeeMapper {
	/**
	 * 查询员工管理列表
	 *
	 * @param employee 员工管理
	 * @return 员工管理集合
	 */
	public List<Employee> selectEmployeeList(Employee employee);

	// /**
	//  * 查询总记录数
	//  */
	// @Select("select count(*) from employee e left join department d on e.dept_no = d.dept_no ")
	// public Long count();
	//
	// /**
	//  * 查询所有的员工及其对应的部门名称
	//  */
	// @Select("select e.*, d.name deptName from employee as e left join department as d on e.dept_no = d.dept_no limit #{start}, #{pageSize}")
	// //public List<Emp> list(Integer start , Integer pageSize);
	// public List<Employee> list(Integer start, Integer pageSize);
	//
	// // /**
	// //  * 查询所有的员工及其对应的部门名称
	// //  */
	// // @Select("select e.*, d.name deptName from employee as e left join department as d on e.dept_no = d.dept_no limit #{start}, #{pageSize}")
	// // public Page<Employee> selectEmployeeList();

	/**
	 * 批量删除员工信息
	 *
	 * @param empNos 需要删除的数据主键集合
	 * @return 结果
	 */
	public int deleteEmployeeByEmpNos(Long[] empNos);

	/**
	 * 查询员工管理
	 *
	 * @param empNo 员工管理主键
	 * @return 员工管理
	 */
	public Employee selectEmployeeByEmpNo(Long empNo);

	/**
	 * 修改员工
	 *
	 * @param employee 员工
	 * @return 结果
	 */
	public int updateEmployee(Employee employee);

	/**
	 * 新增员工
	 *
	 * @param employee 员工
	 * @return 结果
	 */
	public int insertEmployee(Employee employee);

	/**
	 * 删除员工信息
	 * @param empNo 员工ID
	 * @return 结果
	 */
	public int deleteEmployeeByEmpNo(Long empNo);
}
